============================================================== Guild: wafer.space Community Channel: 📐 - Designing / 🕰️-analog After: 2026-07-31 11:59 p.m. Before: 2026-09-01 12:00 a.m. ============================================================== [2026-08-01 6:51 p.m.] tholin Need to make a analog comparator for my next analog layout. Can’t I just re-use my normal opamp schematic for this? As far as I understand, the two are very similar. [2026-08-01 6:51 p.m.] tholin Opamp but the output stage is replaced with a schmitt trigger inverter/buffer = comparator [2026-08-01 6:51 p.m.] tholin ? [2026-08-01 6:51 p.m.] tholin Well, maybe not a schmitt trigger depending on the application. [2026-08-01 6:52 p.m.] tholin Wait, is there even a difference between the two? [2026-08-01 6:56 p.m.] 246tnt It's the same basic concepts but you optimize for different things. [2026-08-01 6:57 p.m.] 246tnt What are the requirements for your comparator ? [2026-08-01 6:58 p.m.] tholin I’m worried about the output not being something I can safely feed into a standard cell because it might settle on a voltage between high and low. [2026-08-01 6:59 p.m.] tholin That’s my current concern [2026-08-01 7:00 p.m.] tholin I can optimize it for the input voltage ranges I’m using later, when I have some more concrete numbers. [2026-08-01 7:01 p.m.] tholin opamps have analog outputs, so can generate non-logic-level voltages [2026-08-01 7:01 p.m.] 246tnt The general idea is you need enough gain so that any voltage difference at the input will result in the output hitting the rails ... [2026-08-01 7:02 p.m.] 246tnt and then ideally some hysteresis so that noise doesn't create a mess if you have slow transitions. [2026-08-01 7:02 p.m.] 246tnt And as you said above, a schmitt trigger is not a bad way to provide both more gain as a second stage and hysteresis. [2026-08-01 7:02 p.m.] 246tnt This is what I did in the comparator for my 555 clone. [2026-08-01 7:04 p.m.] 246tnt But that's highly dependent on the application ... the "comparator" I did on sky 130 ( for high speed differential input ) works differently and just uses positive feedback and 3 stages to have enough gain to force input to a rail. [2026-08-01 7:05 p.m.] tholin Alright [2026-08-01 7:05 p.m.] tholin I think i’ll look into how to build a schmitt trigger for this [2026-08-01 7:05 p.m.] 246tnt And then the comparator I'm working on now for clocked sampling works yet another way because if you sample at regular interval you can have sample step and amplify step. [2026-08-01 7:06 p.m.] 246tnt What's the application ? [2026-08-01 7:08 p.m.] 246tnt I have a gf180 schmitt inverter there : https://github.com/smunaut/tt_tnt_gf_555/blob/main/xschem/inv_schmitt.sch https://github.com/smunaut/tt_tnt_gf_555/blob/main/mag/inv_schmitt.mag [2026-08-01 7:08 p.m.] tholin Overvoltage protection [2026-08-01 7:09 p.m.] tholin Sortof, but that’s the basic idea [2026-08-02 4:54 p.m.] namibj AFAIK the solution to that is to have so many inverters in sequence that noise will make it statistically improbable to end up with metastable voltages at the end. Clocked comparators afaik help a lot for that, btw. You get a deliberate regenerative gain stage, suitable for feeding to a couple stages of DFFs just like you'd have to do for digital signals that cross clock domains btw. [2026-08-02 5:06 p.m.] namibj Ohhh, tell what for (if you can); I'm looking mildly anxiously forward to having to do similar but probably substantially more complicated due to needing it to run at probably 16x interleaving 🙁 [2026-08-02 5:08 p.m.] 246tnt I'm slowly working toward my USB 2.0 HS PHY goal 😅 {Reactions} 💜 (2) [2026-08-02 6:15 p.m.] djsftree cap_mim_*_m4m5_noshield , just checking wafer space support the mim, HRES poly resistor (one additional mask?) and Vt NMOS from s10 of pdk. [2026-08-02 6:28 p.m.] 246tnt It supports : * 2 fF/um^2 MiM * 1k / sq HRES poly * Native 6.0v nmos [2026-08-02 6:46 p.m.] namibj 🙂 Do share what you get from that. [2026-08-02 6:49 p.m.] namibj [I'll also ask in the substantially non-overlapping chipalooza matrix, as it's more near-term relevant to there; I'll only expect to have such structure for e-test on Run3, but still..] Regarding the C_Offset capacitance digital trim banks: Is that what the sky130 PDK calls "accumulation-mode varactors"? Do we have an appropriate device on gf180mcuD and/or IHP SG13cmos5L? [edit:]... we do seem to have an `SVaricap` on IHP SG13cmos5L; not so sure yet about the situation on gf180mcuD. Which isn't helped by my somewhat poor understanding of the supposed behavior of these structures that can't be replicated (properly) by "just" using "normal" PMOS devices in their own dedicated nwell, with their guard ring and that. {Attachments} 2026-08_media/image-8CB9B.png [2026-08-02 7:04 p.m.] tholin Ah, but I'd need a clock source for DFFs [2026-08-02 7:28 p.m.] namibj What are you trying to lift the signal into then? Or is the purpose of the S that shall consume the comparator feed secret for the time being? [2026-08-02 8:25 p.m.] djsftree thanks! [2026-08-02 8:32 p.m.] 246tnt @namibj There are varactor on gf180. All named "moscap". [2026-08-02 8:33 p.m.] namibj oh. Are they built like the sky130 ones? [2026-08-02 8:33 p.m.] 246tnt Not sure never looked. magic has a pcell. [2026-08-02 8:34 p.m.] 246tnt What I'm designing ATM looks basically similar to that drawing, except the input stage is pmos because common mode is very low, so nmos don't work there. [2026-08-02 8:35 p.m.] namibj yeah that aspect in this one is handled by the CTLE preamp section drawn upper left [2026-08-02 8:36 p.m.] namibj https://people.engr.tamu.edu/spalermo/ecen689/lecture10_ee689_rx_circuits.pdf [2026-08-02 8:38 p.m.] namibj Time-interleaved or not for the USB-HS target? [2026-08-02 8:40 p.m.] namibj If you happen to have some reading material you can link on the clock recovery part of the subject matter, please do. [2026-08-02 8:41 p.m.] 246tnt Yes, my VCO is running at 240 MHz with 4 phase 0 90 180 270. {Reactions} ferrisCatOwO [2026-08-02 8:41 p.m.] 246tnt Ok, gotta go sorry ... {Reactions} ferristhumbsup [2026-08-02 8:44 p.m.] namibj I otherwise feel like I'd put like 4 extra ones next to the time-interleaved full data rate army either in a box or a cross pattern (not sure yet) and adjust to where those offset ones reach a notably-but-limited BER, comparing the information in the digital domain (slow side). [2026-08-04 8:49 p.m.] brunny95 Hi, I am checking a little bit this page: https://mithro.github.io/gf180mcu-project-template/ I have a question about the analog pins: would it be possible to have more using the standard pads? I see that we can have only 6 of them with the 0.5×1 (Half Width) Because we would like to have the chip on board packaging too [2026-08-04 9:12 p.m.] tholin My next submission is going to be a entire analog die. So I’m not going to need the LibreLane flow at all. I am going to do the routing to the pads myself, since I need the wires to be quite thick. Not sure how to accomplish this. I’ll keep everyone updated on my progress. {Reactions} 👍 (3) [2026-08-04 9:28 p.m.] polyfractal I'm not 100% about the power pads, but analog/bidir/input can be changed in the template to whatever you want. You just can't change the pad position/size/number if you want to use the COB packaging. Pretty sure you can change the power pads too, I don't think the COB pcb ties them together. but not 100% on that part {Reactions} 👍 [2026-08-04 9:41 p.m.] brunny95 Honestly, if that was the case, it would not make sense to write down the number of bidir/analog/input pads and power pads inside the project template. But I would be very happy if this is the case 😍 [2026-08-04 9:47 p.m.] brunny95 My idea would be to use the flow of librelane for the generation of the pads; if the pads are "free" a possible ideas would be to parallelize these standards pads, like using 2 or more pads for the same signal, and avoid to manually layout them. [2026-08-05 2:12 p.m.] 246tnt Did anyone look at the IOs drivers ? Are the final driver transistors nmos/pmos used as ESD diodes ? I don't see any separate ESD structures. [2026-08-05 2:23 p.m.] 246tnt Started a thread. [2026-08-05 3:45 p.m.] polyfractal I can say from experience (Run1) and because I also did it for Run2: you can definitely change bidir/analog/input to whatever you want 🙂 I think that page you found on Tim's github is just the result of a script that dumps out the default configs for comparison. I wouldn't read too much into it [2026-08-05 4:46 p.m.] essen__ Same understanding here, and as @BreakingTaps says you are free to do whatever you want and switch out they types between {analog/bidir/input} just keep the power pins in place for CoB packing. [2026-08-05 4:49 p.m.] brunny95 Great news guys, thanks a lot to both! For the power pins, I have to check their current specifications, I hope they are fine {Reactions} 🫡 👍 (2) [2026-08-07 6:30 p.m.] namibj they're in the PDK on the page for that padring-member-class cell. {Reactions} 👍 [2026-08-09 7:11 p.m.] tholin https://cdn.discordapp.com/attachments/1148704591781843145/1536088828261961900/image.png?ex=6a7a21b3&is=6a78d033&hm=1b3649929bbef12f43b949979d36500a43156094f8b878ef615b10d7107f1a07& {Embed} https://cdn.discordapp.com/attachments/1148704591781843145/1536088828261961900/image.png?ex=6a7a21b3&is=6a78d033&hm=1b3649929bbef12f43b949979d36500a43156094f8b878ef615b10d7107f1a07& 2026-08_media/image-DE47F.png {Reactions} 💜 [2026-08-09 7:11 p.m.] tholin Working comparator [2026-08-09 9:13 p.m.] tholin O- oh! {Attachments} 2026-08_media/image-FE408.png [2026-08-09 9:21 p.m.] 246tnt Working oscillator? [2026-08-09 9:46 p.m.] tholin Technically, yes [2026-08-09 9:47 p.m.] tholin Now, "is it supposed to be an oscillator" is a different and no less interesting question entirely! [2026-08-09 11:44 p.m.] namibj I have a feeling the strong ARM latch with it's nominal/supposed output into an RS latch from which the stabilized output can then be recovered afterwards, would also work suitably for this task here, though ofc replacing the _strongly regenerative, made possible through clocked gain_ core of a strong ARM latch with a sufficciently weakly regenerative one that _just_ manages to provide the desired width of dead-band/hysteresis, and is then followed with a sufficcient quantity of differential gain stages to ensure it still correctly/properly operates the RS latch. One would probably need to rely on CMOS inverter [-pair] (weakened by channel elongation to reduce bandwidth to what the following parts can actually utilize, and to curb power waste in that place, unless a current-starved-inverter style turns out to not break the regenerative core's operating principles) inputs in place of the strong ARM latch's natural nmos-diff-pair, but I doubt you need it to resolve double-hysteresis-flip signals (i.e., twice as much input amplitude as would be required to merely meet the input hysteresis, and where one would thus have a fairly weak but reasonably-above-noise-floor input signal) in under 2 ns (let's say 3ns given the use of 5V devices). [2026-08-10 9:12 a.m.] tholin Are there any DRC rules dictating a maximum width for a single transistor? [2026-08-10 9:12 a.m.] tholin Can I have one wide FET that stretches the entire width of the core area? [2026-08-10 9:17 a.m.] tholin I am also still trying to figure out how to go about making an entirely analog die. Any suggestions, @Leo Moser (mole99) ? I want to do the whole core area by hand, only calling upon LibreLane for filler insertion and DRC checks. [2026-08-10 9:22 a.m.] mole99 Well, for the first part you can either use magic or KLayout to draw the layout (I suppose that wasn't the question 😉), and for the second part you could use a custom LibreLane flow, either through the API or by modifying the flow through the config. The [gf180mcu-precheck](https://github.com/wafer-space/gf180mcu-precheck) is basically just that: it first reads in a GDS into LibreLane's current state using a custom step, and then runs e.g. Magic.DRC and KLayout.DRC on it. In your case, you can also add filler generation. {Embed} https://github.com/wafer-space/gf180mcu-precheck GitHub - wafer-space/gf180mcu-precheck: Precheck for wafer.space MP... Precheck for wafer.space MPW runs using the gf180mcu PDK - wafer-space/gf180mcu-precheck 2026-08_media/gf180mcu-precheck-76C15 [2026-08-10 9:31 a.m.] tholin The problem is that I’d rather not have to figure out how to draw the padring and sealring by hand. I need a template. A gf180-analog-template, if you will :P [2026-08-10 9:31 a.m.] tholin I guess a LibreLane flow that aborts after just those steps? [2026-08-10 9:36 a.m.] mole99 Now I understand! Yes that one already exists, you can find more information on running the flow in the project template README: https://github.com/wafer-space/gf180mcu-project-template#building-a-standalone-padring-for-analog-design {Embed} https://github.com/wafer-space/gf180mcu-project-template GitHub - wafer-space/gf180mcu-project-template: Project template fo... Project template for wafer.space MPW runs using the gf180mcu PDK - wafer-space/gf180mcu-project-template 2026-08_media/gf180mcu-project-template-5FF79 [2026-08-10 9:38 a.m.] tholin Idk how you manage to always be one step ahead [2026-08-10 9:38 a.m.] tholin Thank you [2026-08-10 9:51 a.m.] mole99 Haha, well, it's a common problem with analog designs. You're welcome! [2026-08-10 10:07 a.m.] tholin I think I’m going to go for a quarter slot this time and hope it gets squeezed into some spare space like some projects did on run 2. {Reactions} 👌 [2026-08-10 10:11 a.m.] mole99 If you have the time to create additional variations of your design, such as half-slot versions, chances are even higher. [2026-08-10 10:12 a.m.] tholin That would be a lot of work since I am doing the whole layout by hand, but I can try {Reactions} 👍 [2026-08-10 10:12 a.m.] tholin I probably can adapt it quite easily for half-slot, but I’d feel bad taking up a full slot since this is a pretty simple circuit that is already going to have a lot of unused space on the quarter slot. [2026-08-10 10:12 a.m.] tholin I think [2026-08-10 10:13 a.m.] tholin Most of the die area is going to be a big power FET, but I don’t expect it to be too large. [2026-08-10 10:13 a.m.] tholin In typical fashion, I will fill the remaining area with art [2026-08-10 10:13 a.m.] tholin Which should be easier this time since I don’t have to worry about keeping LibreLane out of trouble around the artworks. [2026-08-10 10:17 a.m.] vaticori Are you also trying to submit this for Chipalooza? [2026-08-10 10:18 a.m.] tholin I don’t know what Chipalooza is [2026-08-10 10:21 a.m.] mole99 @Tim Edwards is hosting Chipalooza, see here for more: https://opencircuitdesign.com/chipalooza/ [2026-08-10 10:26 a.m.] tholin Huh, interesting [2026-08-10 10:26 a.m.] tholin But does look a lot more is involved there [2026-08-10 10:26 a.m.] tholin Like, I see a bunch of review steps [2026-08-10 12:41 p.m.] rtimothyedwards_19428 You can handle it! Anyway, Chipalooza for GF will launch in a week and I will announce on the Wafer.Space discord. {Reactions} waferspace [2026-08-10 12:45 p.m.] tholin I’m reading the FAQ right now. So, I need to make a layout that is integrated onto a multi-project die? [2026-08-10 12:46 p.m.] tholin Hmmm, not sure what I’m building now is suitable, then, but I can maybe take some of its component modules and do something with those. [2026-08-10 2:05 p.m.] namibj KLayout has them as PCells. Well, the sealring; you could also take a template GDS and flatten and delete everything but the top metal/pad-opening structures from inside the sealring, leaving only the literal pads themselves (I'd suggest considering to keep the existing via structure of how the pad electrical connection is escaped downwards, as there are some minor DRC aspects around the interaction between (especially upper-level) vias and pads if those pads are wedge-bonded (like all of Run1 has been) [2026-08-10 2:08 p.m.] namibj For the record, `FC01` was done entirely in KLayout using the IEEE Chipathon docker tag. Took me a few tries to get the coordinate origin and exact precise size of the pad ring right, but that was it. ============================================================== Exported 91 message(s) ==============================================================